namespace YM{
    export const objectSystems=[];
    export function objectSystem(con:{new()}){
        return function(target){
            let sys={type:con,sysCon:target};
            objectSystems.push(sys);
        }
    }
    export const noObjectPoolsEnity={};
    export function noObjectPool(target){
        if(target in noObjectPoolsEnity){
            return;
        }
        noObjectPoolsEnity[target]="";
    }
    export const uiPanels=[];
    export function UIWindow(target){
        uiPanels.push(target);
    }

    export const configTypes=[];
    export function config(configCon:Function,isAutoInit:boolean=true){
        return function(target){
            let config={type:configCon,cateCon:target,initState:isAutoInit};
            configTypes.push(config);
        }
    }

    export const eventHandles=[];
    export function handle(eventName:string){
        return function(target){
            let eventHandle={name:eventName,handle:target};
            eventHandles.push(eventHandle);
        }
    }

}